package org.ziwei.paipan.biao;

import org.ziwei.paipan.var.DiZhi;
import org.ziwei.paipan.var.TianGan;

/**
 * 宫干表
 * 五虎遁诀:
 * 甲己之年丙作首，乙庚之年戊为头。
 * 丙辛岁首庚寅起，丁壬壬寅顺行流。
 * 唯有戊癸从何起，正月便从甲寅行。
 * 例如：癸丑年出生的人，生年天干是癸，正月是甲寅，由寅上起甲，依次甲乙丙丁顺数到丑
 */
public class GongGanBiao {
	/**
	 * 根据五虎盾绝，计算出宫干表
	 * 横轴是天支%5，纵轴是宫支
	 */
	private static TianGan[][] gongGanBiao = {
		{TianGan.BING,TianGan.DING,TianGan.BING,TianGan.DING,TianGan.WU,TianGan.JI,TianGan.GENG,TianGan.XIN,TianGan.REN,TianGan.GUI,TianGan.JIA,TianGan.YI},
		{TianGan.WU,TianGan.JI,TianGan.WU,TianGan.JI,TianGan.GENG,TianGan.XIN,TianGan.REN,TianGan.GUI,TianGan.JIA,TianGan.YI,TianGan.BING,TianGan.DING},
		{TianGan.GENG,TianGan.XIN,TianGan.GENG,TianGan.XIN,TianGan.REN,TianGan.GUI,TianGan.JIA,TianGan.YI,TianGan.BING,TianGan.DING,TianGan.WU,TianGan.JI},
		{TianGan.REN,TianGan.GUI,TianGan.REN,TianGan.GUI,TianGan.JIA,TianGan.YI,TianGan.BING,TianGan.DING,TianGan.WU,TianGan.JI,TianGan.GENG,TianGan.XIN},
		{TianGan.JIA,TianGan.YI,TianGan.JIA,TianGan.YI,TianGan.BING,TianGan.DING,TianGan.WU,TianGan.JI,TianGan.GENG,TianGan.XIN,TianGan.REN,TianGan.GUI}};
	
	/**
	 * 根据出生年的天干和宫支，返回宫干
	 * @param gongzhi
	 * @param tianGan
	 * @return TianGan
	 */
	public static TianGan anGongGan(TianGan tianGan, DiZhi gongzhi){
		return gongGanBiao[tianGan.ordinal()%5][gongzhi.ordinal()];
	}
}
